![]() | |
![]() | |
Γενικά | |
---|---|
Ημερ. Δημιουργίας | 1977 |
Είδος | γλώσσα προγραμματισμού σεναρίων, Δομημένος προγραμματισμός |
Διανομή | |
Λειτουργικά | |
Ανάπτυξη | |
Σύνδεσμοι | |
Αποθετήριο κώδικα | |
https://github.com/onetrueawk/awk |
Το AWK είναι εργαλείο ανάλυσης δεδομένων και παραγωγής αναφορών και χρησιμοποιεί μια γλώσσα σεναρίων που λειτουργεί με βάση τα δεδομένα εισόδου (data-driven), η οποία αποτελείται από ενέργειες που πρέπει να εκτελεστούν σε δεδομένα τύπου κειμένου (σε αρχεία ή ροές δεδομένων), με σκοπό την παραγωγή αναφορών με κάποια μορφοποίηση. Η γλώσσα που χρησιμοποιείται από το εργαλείο awk χρησιμοποιεί κυρίως τύπους δεδομένων συμβολοσειρών (strings), συσχετιστικών πινάκων (associative arrays, πίνακες των οποίων οι δείκτες είναι τύπου συμβολοσειράς) και κανονικές εκφράσεις (regular expressions).
Η γλώσσα AWK αποτέλεσε ένα από τα πρώτα εργαλεία που εμφανίστηκαν στην Έκδοση 7 του Unix (Version 7 Unix) και έγινε δημοφιλής σαν τρόπος να εισαχθούν υπολογιστικές λειτουργίες σε μια σωλήνωση του (pipeline) του Unix. Σχεδόν κάθε σύγχρονο λειτουργικό σύστημα τύπου Unix που είναι διαθέσιμο σήμερα περιλαμβάνει τη γλώσσα AWK. Η AWK αναφέρεται στο Single UNIX Specification σαν υποχρεωτικό εργαλείο ενός λειτουργικού συστήματος Unix και αποτελεί μαζί με το κέλυφος Bourne τις δύο μοναδικές γλώσσες σεναρίων που είναι κανονικά διαθέσιμες σε ένα περιβάλλον Unix.[1] Ανήκει επίσης στις εντολές που απαιτούνται από την προδιαγραφή Linux Standard Base.[2] Υπάρχουν επίσης διαθέσιμες υλοποιήσεις της AWK για πολλά άλλα λειτουργικά συστήματα.
Η AWK δημιουργήθηκε στα Bell Labs στα τέλη της δεκαετίας του 1970,[3] και το όνομά της προέρχεται από τα επίθετα των δημιουργών της — Alfred Aho, Peter Weinberger και Brian Kernighan. Το awk με μικρά γράμματα αναφέρεται στο αντίστοιχο πρόγραμμα του Unix ή του Plan 9 που εκτελεί προγράμματα γραμμένα στη γλώσσα AWK.
Η ισχύς, η συντομία, αλλά και οι περιορισμοί των πρώτων προγραμμάτων σε AWK ενέπνευσαν το Larry Wall να γράψει την Perl, ενώ ταυτόχρονα αναπτυσσόταν μια νέα, ισχυρότερη POSIX AWK και η gawk (GNU AWK). Αν και η AWK και ο sed είχαν σχεδιαστεί να υποστηρίζουν προγράμματα της μιας γραμμής, ακόμα και οι πρώτοι χρήστες της AWK από τα Bell Labs συχνά έγραφαν καλά δομημένα προγράμματα μεγάλου μεγέθους σε AWK. Παρά τον περιορισμένο σκοπό για τον οποίο προορίζεται, η AWK είναι Τιούρινγκ-πλήρης (Turing-complete).[4]
The awk action language is Turing-complete, and can read and write files.